package com.androidiani.ShipDroid;

import java.util.ArrayList;

import android.content.Intent;
import android.database.sqlite.SQLiteException;

/**
 * Init.java
 * 
 * La classe Init si occupa semplicemente di instanziare ed inizializzare
 * tutto l'occorente per avviare l'applicazione. 
 * 
 * @author      Rixxo
 * @version     x.x
 * 
 */
public class Init extends ShipDroid{
	private ArrayList<String> log;
	private SplashscreenManager spl;
	
	public Init(){
		
		//Inizialiazzo il log
		log = new ArrayList();
		
		//Avvia lo splashscreen
		spl = new SplashscreenManager(Init.this);
		log.add("SplashscreenManager Instantiated ...");
		
		//Inizializzo db cosi da poter recuperare lo stato dal database
		try{
			db = new DBManager(Init.this);
			log.add("DBManager Instantiated ...");
			spl.text.setText(log.get(1));
			
		}catch(SQLiteException sql){
			if(sql.getMessage() != null){
				log.add(sql.getMessage());
				spl.text.setText(log.get(1));
			}
		}
		
		//Inizializazzione dello stato
		if(resumeState() != null){
			log.add(resumeState());
			spl.text.setText(log.get(2));
		} else {
			log.add("Status Initializated ...");
			spl.text.setText(log.get(2));
		}
		
		//Inizializzo nm cosi da poter effetuare il login  
		nm = new NetworkManager();
		log.add("DBManager Instantiated ...");
		spl.text.setText(log.get(3));
		
		
		//Avvio il login
		startActivity(new Intent(Init.this, LoginManager.class));
		log.add("LoginManager Instantiated ...");	
	}
	
	//Ritorna il log dell'inizializazzione
	public ArrayList<String> getLog(){
		return log;
	}

}
